#ifndef _ML_COMMON_H_
#define _ML_COMMON_H_

#define _USE_MATH_DEFINES

// Standard C++ headers
#include <vector>
#include <map>
#include <list>
#include <deque>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <iostream>
#include <utility>
#include <algorithm>
#include <functional>
#include <fstream>
#include <sstream>
// C headers
#include <cstdio>
#include <cstdlib>
#include <float.h>
#include <cmath>
#include <time.h>
// Platform headers
#include "MLSysWinBase.h"

#define _MYLABLIB_BEGIN namespace mylablib {
#define _MYLABLIB_END }

#define ML_FAILED(ret) (ret < 0)
#define ML_ASSERT(condition) _ASSERT(condition)

#define ML_ON_FAILED_RETURN(ret) { \
	if(ML_FAILED(ret)) {           \
		ML_ASSERT(false);          \
		return ret;                \
	}                              \
};                                 \

#endif
